\subsection{Architecture criteria}
The application is required to be scalable in order for it to be easy to add further functionality. This is partially taken care of by insuring modularity, which as an effect also makes the application easier to maintain. It is required to be able to communicate properly with various platforms in terms of protocols, operating systems and client hardware. WCF can take care of these requirements. It is required to insure security through encryption, which is also handled by WCF using a secure binding.
The application needs to ensure the ACID properties, this will be explained into further detail later in the report.

\subsubsection{Balancing front-end vs back-end logic}
For the case of our domain we seek to place as much logic on the back-end and make the client as dumb as possible in order to reduce the workload for each client. Furthermore it will make the application more maintainable since changes mostly needs to be done on the server side. Our Back-end contains the four layers: the Model layer, Business logic layer, Data access layer and the WCF service.

\subsection{Three-tier application}
A three-tier application is typically split up into three tiers:
\begin{enumerate}
\item Presentation tier
\item Logic tier
\item Data tier
\end{enumerate} 

\subsubsection{Presentation tier}
The presentation tier contains the UI of the application. This is where the accessible data of the system is presented to the end user and where input can be taken from the user. In other words this is in the front-end.

\subsubsection{Logic tier}
The logic tier contains the modelling and logic of the system. It usually consists of several layers itself; in our case a model layer, business logic layer (control layer) and database access layer, and in our case the WCF service as well. It can be argued whether or not the WCF service provides a service tier in itself.

\subsubsection{Data tier}
The data tier contains the actual database in our case Microsoft SQL.

\subsubsection{Advantages and disadvantages of 3-tier application}
The advantages of having a 3-tier architecture is that it improves scalability, reusability, availability, ease of integration and reduces maintenance cost; making it more durable than a 2-tier application. \\
The disadvantages are that the components are less tightly coupled than had it been a 2-tier application meaning higher latency. As well a 3-tier application is initially more expensive to implement.

\subsection{Communication}
Communication in our architecture travels between multiple layers: Presentation -> WCF service -> Business Logic -> DAL -> Data tier. The WCF service creates a proxy for the presentation clients, this be explain more in detail under WCF service. \ref{arch:wcf}